name: clippy, fmt and eslint check

on:
  push:
    branches-ignore:
      - latest
      - dev

jobs:
  workspace_clippy_fmt_check:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2
      - name: install webkit2gtk
        run: |
          sudo apt-get update
          sudo apt-get install -y webkit2gtk-4.0
      - run: rustup component add clippy
      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --all-targets -- -D warnings
          name: workspace
        env:
          TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
          TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri
      - uses: actions-rs/toolchain@v1
        with:
            profile: minimal
            toolchain: nightly
            override: true
            components: rustfmt
      - uses: actions-rs/cargo@v1
        with:
          command: fmt
          args: --all -- --check

  core_clippy_check:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        feature: [embedded-server, no-server, all-api]

    steps:
      - uses: actions/checkout@v2
      - name: install webkit2gtk
        run: |
          sudo apt-get update
          sudo apt-get install -y webkit2gtk-4.0
      - run: rustup component add clippy
      - uses: actions-rs/clippy-check@v1
        with:
          token: ${{ secrets.GITHUB_TOKEN }}
          args: --manifest-path ./tauri/Cargo.toml --all-targets --features ${{ matrix.feature }} -- -D warnings
          name: core
        env:
          TAURI_DIST_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/dist
          TAURI_DIR: ${{ runner.workspace }}/tauri/tauri/examples/communication/src-tauri

  eslint-check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v1
      - name: install deps via yarn
        working-directory: ./cli/tauri.js
        run: yarn
      - name: run eslint
        working-directory: ./cli/tauri.js
        run: yarn lint
